home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 8848 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.2 KB

  1. Path: thor.tu.hac.com!collins
  2. From: collins@thor.tu.hac.com (Ron Collins)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: revised code of calling a function twice from printf
  5. Date: 6 Mar 1996 14:57:06 GMT
  6. Organization: Advanced Depot Systems
  7. Distribution: world
  8. Message-ID: <4hk942$mu9@hacgate2.hac.com>
  9. References: <4hfs54$k4e@newsbf02.news.aol.com> <Pine.A32.3.91.960304174215.96209J-100000@black.weeg.uiowa.edu>
  10. NNTP-Posting-Host: thor.tu.hac.com
  11. X-Newsreader: TIN [version 1.2 PL2]
  12.  
  13. The Amorphous Mass (robinson@blue.weeg.uiowa.edu) wrote:
  14. [snip]
  15.  
  16. : > return 0;
  17. : >         }
  18. : > 
  19. : > char *display_drug_type(int drug_index) {
  20. : >    char drug_type[81]="\0";
  21.  
  22. :   make this
  23. :      static char drug_type[81];  /* static variables are automatically
  24. :                   initialized to 0, and it's safe to
  25. :                   return their addresses -- they "persist" */
  26.  
  27.  
  28. No ... "static" is no good here.  Since he's calling "display_drug_type"
  29. twice within a single sequence, only the value stored in the last call
  30. will be returned to his "printf" statement.  That is, "display_drug_type"
  31. will be called twice _before_ the call to "printf"; hence, he will not get
  32. two different strings displayed, just the same string displayed twice.
  33.  
  34.  
  35.                 -- collins --
  36.  
  37.  
  38.